객체지향 인터페이스
IT 위키
더 많은 작업
- Interface
- 객체지향 구조에서 추상 메서드만으로 이루어진 설계용 클래스
- 정해진 오퍼레이션을 필수적으로 구현토록 함
| 구분 | 인터페이스(Interface) | 추상 클래스(Abstract Class) |
|---|---|---|
| 목적 |
|
|
| 추상 메서드 | 보유 | 보유 |
| 일반 메서드 | 보유 불가능 | 보유 가능 |
| 다중 상속 | 가능 | 불가능 |
| 언어 | 인터페이스를 만드는 법 |
|---|---|
| 자바, C# | interface 키워드로 선언하고, 클래스는 implements(C# 은 :)로 여러 개를 구현할 수 있다
|
| C++ | 별도 문법이 없다. 순수 가상 함수(= 0)만 두고 데이터 멤버를 두지 않은 추상 클래스를 관례상 '인터페이스 클래스' 로 쓴다
|
| 파이썬 | abc 모듈의 추상 메서드로 흉내 낸다
|
C++ 코드에서 문법으로 드러나는 것은 추상 클래스(순수 가상 함수), 다중 상속(부모 클래스 나열), 멤버 함수 원형(선언) 같은 것이고, '인터페이스 클래스' 는 언어가 정한 문법 요소가 아니다. 특히 다른 클래스를 상속해 구현과 데이터를 물려받는 클래스는 순수한 인터페이스로 보지 않는다.